<!DOCTYPE HTML>

<html lang="en">
<head>

<title>X509Configurer (spring-security-docs 5.6.3 API)</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../../../../../jquery/jquery-ui.css" title="Style">
<script type="text/javascript" src="../../../../../../../script.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jszip/dist/jszip.min.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils.min.js"></script>
<!--[if IE]>
<script type="text/javascript" src="../../../../../../../jquery/jszip-utils/dist/jszip-utils-ie.min.js"></script>
<![endif]-->
<script type="text/javascript" src="../../../../../../../jquery/jquery-3.5.1.js"></script>
<script type="text/javascript" src="../../../../../../../jquery/jquery-ui.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="X509Configurer (spring-security-docs 5.6.3 API)";
        }
    }
    catch(err) {
    }
//-->
var data = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
var pathtoroot = "../../../../../../../";
var useModuleDirectories = true;
loadScripts(document, 'script');</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<header role="banner">
<nav role="navigation">
<div class="fixedNav">

<div class="topNav"><a id="navbar.top">

</a>
<div class="skipNav"><a href="X509Configurer.html#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.top.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<ul class="navListSearch">
<li><label for="search">SEARCH:</label>
<input type="text" id="search" value="search" disabled="disabled">
<input type="reset" id="reset" value="reset" disabled="disabled">
</li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.top">

</a></div>

</div>
<div class="navPadding">&nbsp;</div>
<script type="text/javascript"><!--
$('.navPadding').css('padding-top', $('.fixedNav').css("height"));
//-->
</script>
</nav>
</header>

<main role="main">
<div class="header">
<div class="subTitle"><span class="packageLabelInType">Package</span>&nbsp;<a href="package-summary.html">org.springframework.security.config.annotation.web.configurers</a></div>
<h2 title="Class X509Configurer" class="title">Class X509Configurer&lt;H extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;H&gt;&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../SecurityConfigurerAdapter.html" title="class in org.springframework.security.config.annotation">org.springframework.security.config.annotation.SecurityConfigurerAdapter</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;B&gt;</li>
<li>
<ul class="inheritance">
<li><a href="AbstractHttpConfigurer.html" title="class in org.springframework.security.config.annotation.web.configurers">org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer</a>&lt;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;H&gt;,&#8203;H&gt;</li>
<li>
<ul class="inheritance">
<li>org.springframework.security.config.annotation.web.configurers.X509Configurer&lt;H&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><code><a href="../../SecurityConfigurer.html" title="interface in org.springframework.security.config.annotation">SecurityConfigurer</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;H&gt;</code></dd>
</dl>
<hr>
<pre>public final class <span class="typeNameLabel">X509Configurer&lt;H extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;H&gt;&gt;</span>
extends <a href="AbstractHttpConfigurer.html" title="class in org.springframework.security.config.annotation.web.configurers">AbstractHttpConfigurer</a>&lt;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;H&gt;,&#8203;H&gt;</pre>
<div class="block">Adds X509 based pre authentication to an application. Since validating the certificate
happens when the client connects, the requesting and validation of the client
certificate should be performed by the container. Spring Security will then use the
certificate to look up the <a href="../../../../core/Authentication.html" title="interface in org.springframework.security.core"><code>Authentication</code></a> for the user.
<h2>Security Filters</h2>
<p>
The following Filters are populated
<ul>
<li><a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>X509AuthenticationFilter</code></a></li>
</ul>
<h2>Shared Objects Created</h2>
<p>
The following shared objects are created
<ul>
<li><a href="../../../../web/AuthenticationEntryPoint.html" title="interface in org.springframework.security.web"><code>AuthenticationEntryPoint</code></a> is populated with an
<a href="../../../../web/authentication/Http403ForbiddenEntryPoint.html" title="class in org.springframework.security.web.authentication"><code>Http403ForbiddenEntryPoint</code></a></li>
<li>A <a href="../../../../web/authentication/preauth/PreAuthenticatedAuthenticationProvider.html" title="class in org.springframework.security.web.authentication.preauth"><code>PreAuthenticatedAuthenticationProvider</code></a> is populated into
<a href="../builders/HttpSecurity.html#authenticationProvider(org.springframework.security.authentication.AuthenticationProvider)"><code>HttpSecurity.authenticationProvider(org.springframework.security.authentication.AuthenticationProvider)</code></a>
</li>
</ul>
<h2>Shared Objects Used</h2>
<p>
The following shared objects are used:
<ul>
<li>A <a href="../../../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>UserDetailsService</code></a> shared object is used if no
<a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>AuthenticationUserDetailsService</code></a> is specified</li>
</ul></div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>3.2</dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.summary">

</a>
<h3>Constructor Summary</h3>
<table class="memberSummary">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Constructor</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr class="altColor">
<th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#%3Cinit%3E()">X509Configurer</a></span>()</code></th>
<td class="colLast">
<div class="block">Creates a new instance</div>
</td>
</tr>
</table>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.summary">

</a>
<h3>Method Summary</h3>
<table class="memberSummary">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colSecond" scope="col">Method</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#authenticationDetailsSource(org.springframework.security.authentication.AuthenticationDetailsSource)">authenticationDetailsSource</a></span>&#8203;(<a href="../../../../authentication/AuthenticationDetailsSource.html" title="interface in org.springframework.security.authentication">AuthenticationDetailsSource</a>&lt;javax.servlet.http.HttpServletRequest,&#8203;<a href="../../../../web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.html" title="class in org.springframework.security.web.authentication.preauth">PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails</a>&gt;&nbsp;authenticationDetailsSource)</code></th>
<td class="colLast">
<div class="block">Specifies the <a href="../../../../authentication/AuthenticationDetailsSource.html" title="interface in org.springframework.security.authentication"><code>AuthenticationDetailsSource</code></a></div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#authenticationUserDetailsService(org.springframework.security.core.userdetails.AuthenticationUserDetailsService)">authenticationUserDetailsService</a></span>&#8203;(<a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails">AuthenticationUserDetailsService</a>&lt;<a href="../../../../web/authentication/preauth/PreAuthenticatedAuthenticationToken.html" title="class in org.springframework.security.web.authentication.preauth">PreAuthenticatedAuthenticationToken</a>&gt;&nbsp;authenticationUserDetailsService)</code></th>
<td class="colLast">
<div class="block">Specifies the <a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>AuthenticationUserDetailsService</code></a> to use.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#configure(H)">configure</a></span>&#8203;(<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&nbsp;http)</code></th>
<td class="colLast">
<div class="block">Configure the <a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a> by setting the necessary properties on the
<a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a>.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#init(H)">init</a></span>&#8203;(<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&nbsp;http)</code></th>
<td class="colLast">
<div class="block">Initialize the <a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a>.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#subjectPrincipalRegex(java.lang.String)">subjectPrincipalRegex</a></span>&#8203;(java.lang.String&nbsp;subjectPrincipalRegex)</code></th>
<td class="colLast">
<div class="block">Specifies the regex to extract the principal from the certificate.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#userDetailsService(org.springframework.security.core.userdetails.UserDetailsService)">userDetailsService</a></span>&#8203;(<a href="../../../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails">UserDetailsService</a>&nbsp;userDetailsService)</code></th>
<td class="colLast">
<div class="block">Shortcut for invoking
<a href="X509Configurer.html#authenticationUserDetailsService(org.springframework.security.core.userdetails.AuthenticationUserDetailsService)"><code>authenticationUserDetailsService(AuthenticationUserDetailsService)</code></a> with a
<a href="../../../../core/userdetails/UserDetailsByNameServiceWrapper.html" title="class in org.springframework.security.core.userdetails"><code>UserDetailsByNameServiceWrapper</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#x509AuthenticationFilter(org.springframework.security.web.authentication.preauth.x509.X509AuthenticationFilter)">x509AuthenticationFilter</a></span>&#8203;(<a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509">X509AuthenticationFilter</a>&nbsp;x509AuthenticationFilter)</code></th>
<td class="colLast">
<div class="block">Allows specifying the entire <a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>X509AuthenticationFilter</code></a>.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;</code></td>
<th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="X509Configurer.html#x509PrincipalExtractor(org.springframework.security.web.authentication.preauth.x509.X509PrincipalExtractor)">x509PrincipalExtractor</a></span>&#8203;(<a href="../../../../web/authentication/preauth/x509/X509PrincipalExtractor.html" title="interface in org.springframework.security.web.authentication.preauth.x509">X509PrincipalExtractor</a>&nbsp;x509PrincipalExtractor)</code></th>
<td class="colLast">
<div class="block">Specifies the <a href="../../../../web/authentication/preauth/x509/X509PrincipalExtractor.html" title="interface in org.springframework.security.web.authentication.preauth.x509"><code>X509PrincipalExtractor</code></a></div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer">

</a>
<h3>Methods inherited from class&nbsp;org.springframework.security.config.annotation.web.configurers.<a href="AbstractHttpConfigurer.html" title="class in org.springframework.security.config.annotation.web.configurers">AbstractHttpConfigurer</a></h3>
<code><a href="AbstractHttpConfigurer.html#disable()">disable</a>, <a href="AbstractHttpConfigurer.html#withObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor)">withObjectPostProcessor</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.org.springframework.security.config.annotation.SecurityConfigurerAdapter">

</a>
<h3>Methods inherited from class&nbsp;org.springframework.security.config.annotation.<a href="../../SecurityConfigurerAdapter.html" title="class in org.springframework.security.config.annotation">SecurityConfigurerAdapter</a></h3>
<code><a href="../../SecurityConfigurerAdapter.html#addObjectPostProcessor(org.springframework.security.config.annotation.ObjectPostProcessor)">addObjectPostProcessor</a>, <a href="../../SecurityConfigurerAdapter.html#and()">and</a>, <a href="../../SecurityConfigurerAdapter.html#getBuilder()">getBuilder</a>, <a href="../../SecurityConfigurerAdapter.html#postProcess(T)">postProcess</a>, <a href="../../SecurityConfigurerAdapter.html#setBuilder(B)">setBuilder</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a id="methods.inherited.from.class.java.lang.Object">

</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="constructor.detail">

</a>
<h3>Constructor Detail</h3>
<a id="&lt;init&gt;()">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>X509Configurer</h4>
<pre>public&nbsp;X509Configurer()</pre>
<div class="block">Creates a new instance</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../builders/HttpSecurity.html#x509()"><code>HttpSecurity.x509()</code></a></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>

<section role="region">
<ul class="blockList">
<li class="blockList"><a id="method.detail">

</a>
<h3>Method Detail</h3>
<a id="x509AuthenticationFilter(org.springframework.security.web.authentication.preauth.x509.X509AuthenticationFilter)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>x509AuthenticationFilter</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;x509AuthenticationFilter&#8203;(<a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509">X509AuthenticationFilter</a>&nbsp;x509AuthenticationFilter)</pre>
<div class="block">Allows specifying the entire <a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>X509AuthenticationFilter</code></a>. If this is
specified, the properties on <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> will not be populated on the
<a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>X509AuthenticationFilter</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>x509AuthenticationFilter</code> - the <a href="../../../../web/authentication/preauth/x509/X509AuthenticationFilter.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>X509AuthenticationFilter</code></a> to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> for further customizations</dd>
</dl>
</li>
</ul>
<a id="x509PrincipalExtractor(org.springframework.security.web.authentication.preauth.x509.X509PrincipalExtractor)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>x509PrincipalExtractor</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;x509PrincipalExtractor&#8203;(<a href="../../../../web/authentication/preauth/x509/X509PrincipalExtractor.html" title="interface in org.springframework.security.web.authentication.preauth.x509">X509PrincipalExtractor</a>&nbsp;x509PrincipalExtractor)</pre>
<div class="block">Specifies the <a href="../../../../web/authentication/preauth/x509/X509PrincipalExtractor.html" title="interface in org.springframework.security.web.authentication.preauth.x509"><code>X509PrincipalExtractor</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>x509PrincipalExtractor</code> - the <a href="../../../../web/authentication/preauth/x509/X509PrincipalExtractor.html" title="interface in org.springframework.security.web.authentication.preauth.x509"><code>X509PrincipalExtractor</code></a> to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> to use</dd>
</dl>
</li>
</ul>
<a id="authenticationDetailsSource(org.springframework.security.authentication.AuthenticationDetailsSource)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticationDetailsSource</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;authenticationDetailsSource&#8203;(<a href="../../../../authentication/AuthenticationDetailsSource.html" title="interface in org.springframework.security.authentication">AuthenticationDetailsSource</a>&lt;javax.servlet.http.HttpServletRequest,&#8203;<a href="../../../../web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.html" title="class in org.springframework.security.web.authentication.preauth">PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails</a>&gt;&nbsp;authenticationDetailsSource)</pre>
<div class="block">Specifies the <a href="../../../../authentication/AuthenticationDetailsSource.html" title="interface in org.springframework.security.authentication"><code>AuthenticationDetailsSource</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authenticationDetailsSource</code> - the <a href="../../../../authentication/AuthenticationDetailsSource.html" title="interface in org.springframework.security.authentication"><code>AuthenticationDetailsSource</code></a> to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> to use</dd>
</dl>
</li>
</ul>
<a id="userDetailsService(org.springframework.security.core.userdetails.UserDetailsService)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>userDetailsService</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;userDetailsService&#8203;(<a href="../../../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails">UserDetailsService</a>&nbsp;userDetailsService)</pre>
<div class="block">Shortcut for invoking
<a href="X509Configurer.html#authenticationUserDetailsService(org.springframework.security.core.userdetails.AuthenticationUserDetailsService)"><code>authenticationUserDetailsService(AuthenticationUserDetailsService)</code></a> with a
<a href="../../../../core/userdetails/UserDetailsByNameServiceWrapper.html" title="class in org.springframework.security.core.userdetails"><code>UserDetailsByNameServiceWrapper</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>userDetailsService</code> - the <a href="../../../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>UserDetailsService</code></a> to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> for further customizations</dd>
</dl>
</li>
</ul>
<a id="authenticationUserDetailsService(org.springframework.security.core.userdetails.AuthenticationUserDetailsService)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>authenticationUserDetailsService</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;authenticationUserDetailsService&#8203;(<a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails">AuthenticationUserDetailsService</a>&lt;<a href="../../../../web/authentication/preauth/PreAuthenticatedAuthenticationToken.html" title="class in org.springframework.security.web.authentication.preauth">PreAuthenticatedAuthenticationToken</a>&gt;&nbsp;authenticationUserDetailsService)</pre>
<div class="block">Specifies the <a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>AuthenticationUserDetailsService</code></a> to use. If not specified,
the shared <a href="../../../../core/userdetails/UserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>UserDetailsService</code></a> will be used to create a
<a href="../../../../core/userdetails/UserDetailsByNameServiceWrapper.html" title="class in org.springframework.security.core.userdetails"><code>UserDetailsByNameServiceWrapper</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>authenticationUserDetailsService</code> - the
<a href="../../../../core/userdetails/AuthenticationUserDetailsService.html" title="interface in org.springframework.security.core.userdetails"><code>AuthenticationUserDetailsService</code></a> to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> for further customizations</dd>
</dl>
</li>
</ul>
<a id="subjectPrincipalRegex(java.lang.String)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>subjectPrincipalRegex</h4>
<pre class="methodSignature">public&nbsp;<a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers">X509Configurer</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&nbsp;subjectPrincipalRegex&#8203;(java.lang.String&nbsp;subjectPrincipalRegex)</pre>
<div class="block">Specifies the regex to extract the principal from the certificate. If not
specified, the default expression from <a href="../../../../web/authentication/preauth/x509/SubjectDnX509PrincipalExtractor.html" title="class in org.springframework.security.web.authentication.preauth.x509"><code>SubjectDnX509PrincipalExtractor</code></a> is
used.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>subjectPrincipalRegex</code> - the regex to extract the user principal from the
certificate (i.e. "CN=(.*?)(?:,|$)").</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the <a href="X509Configurer.html" title="class in org.springframework.security.config.annotation.web.configurers"><code>X509Configurer</code></a> for further customizations</dd>
</dl>
</li>
</ul>
<a id="init(org.springframework.security.config.annotation.web.HttpSecurityBuilder)">

</a><a id="init(H)">

</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;init&#8203;(<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&nbsp;http)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../SecurityConfigurer.html#init(B)">SecurityConfigurer</a></code></span></div>
<div class="block">Initialize the <a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a>. Here only shared state should be created
and modified, but not properties on the <a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a> used for building
the object. This ensures that the <a href="../../SecurityConfigurer.html#configure(B)"><code>SecurityConfigurer.configure(SecurityBuilder)</code></a> method uses
the correct shared objects when building. Configurers should be applied here.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../SecurityConfigurer.html#init(B)">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../SecurityConfigurer.html" title="interface in org.springframework.security.config.annotation">SecurityConfigurer</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a> extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../SecurityConfigurerAdapter.html#init(B)">init</a></code>&nbsp;in class&nbsp;<code><a href="../../SecurityConfigurerAdapter.html" title="class in org.springframework.security.config.annotation">SecurityConfigurerAdapter</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a> extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&gt;</code></dd>
</dl>
</li>
</ul>
<a id="configure(org.springframework.security.config.annotation.web.HttpSecurityBuilder)">

</a><a id="configure(H)">

</a>
<ul class="blockListLast">
<li class="blockList">
<h4>configure</h4>
<pre class="methodSignature">public&nbsp;void&nbsp;configure&#8203;(<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&nbsp;http)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../SecurityConfigurer.html#configure(B)">SecurityConfigurer</a></code></span></div>
<div class="block">Configure the <a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a> by setting the necessary properties on the
<a href="../../SecurityBuilder.html" title="interface in org.springframework.security.config.annotation"><code>SecurityBuilder</code></a>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../SecurityConfigurer.html#configure(B)">configure</a></code>&nbsp;in interface&nbsp;<code><a href="../../SecurityConfigurer.html" title="interface in org.springframework.security.config.annotation">SecurityConfigurer</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a> extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&gt;</code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../SecurityConfigurerAdapter.html#configure(B)">configure</a></code>&nbsp;in class&nbsp;<code><a href="../../SecurityConfigurerAdapter.html" title="class in org.springframework.security.config.annotation">SecurityConfigurerAdapter</a>&lt;<a href="../../../../web/DefaultSecurityFilterChain.html" title="class in org.springframework.security.web">DefaultSecurityFilterChain</a>,&#8203;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a> extends <a href="../HttpSecurityBuilder.html" title="interface in org.springframework.security.config.annotation.web">HttpSecurityBuilder</a>&lt;<a href="X509Configurer.html" title="type parameter in X509Configurer">H</a>&gt;&gt;</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</section>
</li>
</ul>
</div>
</div>
</main>

<footer role="contentinfo">
<nav role="navigation">

<div class="bottomNav"><a id="navbar.bottom">

</a>
<div class="skipNav"><a href="X509Configurer.html#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a id="navbar.bottom.firstrow">

</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../index.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="X509Configurer.html#method.detail">Method</a></li>
</ul>
</div>
<a id="skip.navbar.bottom">

</a></div>

</nav>
</footer>
<script>if (window.parent == window) {(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');ga('create', 'UA-2728886-23', 'auto', {'siteSpeedSampleRate': 100});ga('send', 'pageview');}</script><script defer src="https://static.cloudflareinsights.com/beacon.min.js/v652eace1692a40cfa3763df669d7439c1639079717194" integrity="sha512-Gi7xpJR8tSkrpF7aordPZQlW2DLtzUlZcumS8dMQjwDHEnw9I7ZLyiOj/6tZStRBGtGgN6ceN6cMH8z7etPGlw==" data-cf-beacon='{"rayId":"7040ed357d2997cf","token":"bffcb8a918ae4755926f76178bfbd26b","version":"2021.12.0","si":100}' crossorigin="anonymous"></script>
</body>
</html>
